﻿using System;
using UnityEngine.Events;
using Yoozoo.Gameplay.Liberty.Nodes;

namespace Yoozoo.Gameplay.Liberty
{
    public static class BlueprintEvents
    {
        public static void SendHeroChangePositionSuccess(int heroId)
        {
            BeginDeckGuideDrag.OnHeroChangePositionSuccess?.Invoke(heroId);
        }
        
        public static void SendHeroOnDeck(int heroId)
        {
            BeginDeckGuideClick.OnHeroOnDeckSuccess?.Invoke(heroId);
        }
        
        public static void SendRpgLevelComplete(int levelId)
        {
            RpgLevelBattleEvent.OnBattleEvent?.Invoke(levelId,true);
        }
        
        public static void SendRpgLevelFailed(int levelId)
        {
            RpgLevelBattleEvent.OnBattleEvent?.Invoke(levelId,false);
        }

        public static void SendSurvivorMissionFailed(int levelId)
        {
            SurvivorMissionEvent.OnBattleEvent?.Invoke(levelId,false);
        }
        
        public static void SendSurvivorMissionComplete(int levelId)
        {
            SurvivorMissionEvent.OnBattleEvent?.Invoke(levelId,true);
        }
        
        public static void SendDialogueComplete(int dialogueId)
        {
            ShowDialogue.OnDialogueComplete?.Invoke(dialogueId);
        }

        public static void SendOccupyEffectComplete(int streetId)
        {
            ShowStreetOccupyEffect.OnOccupyEffectComplete?.Invoke(streetId);
        }

        public static void SendGuideEvent(int eventId)
        {
            GuideEvent.OnGuideEvent?.Invoke(eventId);
        }

        public static void SendServerResponseEvent(string responseName, string key, string val)
        {
            ServerResponseEvent.OnResponseEvent?.Invoke(responseName, key, val);
        }
    } 
}